/*
 * COPYRIGHT. HSBC HOLDINGS PLC 2016. ALL RIGHTS RESERVED.
 * 
 * This software is only to be used for the purpose for which it has been
 * provided. No part of it is to be reproduced, disassembled, transmitted,
 * stored in a retrieval system nor translated in any human or computer
 * language in any way or for any other purposes whatsoever without the
 * written consent of HSBC Holdings plc.
 */
package com.pactera.integral.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.GenericGenerator;

/**
 * @type_name User
 */
@Entity
@Table(name = "INT_DEPARTMENT")
public class Department extends CommonEntity {
    /**
     * @field serialVersionUID
     */
    private static final long serialVersionUID = 1L;
   
    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    @Column(name = "DEPARTMENT_ID", length = 32, unique = true, nullable = false)
    private String departmentId;
    
    @Column(name = "DEPARTMENT_CODE", length = 10, nullable = false)
    private String departmentCode;
    
    @Column(name = "NAME", length = 50, nullable = false)
    private String name;
    
    @Column(name = "DESCRIPTION", length = 100)
    private String description;

    @Transient
    private String superiorDepartmentCode;
    
    
    
   

	/**
	 * @return the superiorDepartmentCode
	 */
	public String getSuperiorDepartmentCode() {
		return superiorDepartmentCode;
	}

	/**
	 * @param superiorDepartmentCode the superiorDepartmentCode to set
	 */
	public void setSuperiorDepartmentCode(String superiorDepartmentCode) {
		this.superiorDepartmentCode = superiorDepartmentCode;
	}

	/**
	 * @return the departmentId
	 */
	public String getDepartmentId() {
		return departmentId;
	}
  
	/**
	 * @return the departmentCode
	 */
	public String getDepartmentCode() {
		return departmentCode;
	}

	/**
	 * @param departmentCode the departmentCode to set
	 */
	public void setDepartmentCode(String departmentCode) {
		this.departmentCode = departmentCode;
	}

	/**
	 * @param departmentId the departmentId to set
	 */
	public void setDepartmentId(String departmentId) {
		this.departmentId = departmentId;
	}

	/**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the description
     */
    public String getDescription() {
        return description;
    }

    /**
     * @param description the description to set
     */
    public void setDescription(String description) {
        this.description = description;
    }

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Department [departmentId=" + departmentId + ", departmentCode=" + departmentCode + ", name=" + name
				+ ", description=" + description + "]";
	}

}
